Zadanie: wychwycenie eventu

Nasz CartProduct powinien już wysyłać event remove – teraz musimy sprawić, aby Cart wychwycił ten event i odpowiednio zareagował.

W metodzie Cart.initActions dodaj listener eventu remove. Ma on działać analogicznie do listenera eventu updated, czyli obserwować element productList.

W handlerze eventu będzie tylko jedna linia kodu – wywołująca metodę thisCart.remove (którą za chwilę napiszemy). Zadbaj o to, aby jako argument przekazywać jej wartość event.detail.cartProduct. Pamiętasz, jak wywołując event, zawarliśmy w nim odwołanie do instancji thisCartProduct? Właśnie w ten sposób (event.detail.cartProduct) teraz ją odbieramy i przekazujemy do metody thisCart.remove.

Ćwiczenie

Stworzenie tej metody będzie już Twoim zadaniem.

Metoda Cart.remove powinna przyjmować jeden argument (właśnie naszą instancję produktu).

Jej zadaniem jest:

  1. Usunięcie reprezentacji produktu z HTML-a,
  2. Usunięcie informacji o danym produkcie z tablicy thisCart.products.
  3. Wywołać metodę update w celu przeliczenia sum po usunięciu produktu.

Do wykonania zadania konieczne jest wykorzystanie wbudowanych w JS funkcji. Wszystkie informacje o nich znajdziesz poniżej:

W rezultacie, kliknięcie guzika usuwania przy którejkolwiek pozycji w koszyku, powinno:

  • usunąć tę pozycję z koszyka,
  • wyświetlić sumy (liczby i cen) obliczone bez usuniętego produktu.

Końcowy efekt powinien być następujący:

image
;